<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Habitaciones extends CI_Controller {

    var $codes;
    private $establecimiento;

    public function __construct() {
        parent::__construct();
        session_start();
        $this->estaLogueado();
        $this->esAdministrador();
        $this->load->model('habitacionesM');
        $this->load->model('cuartom');
        $this->load->model('establecimientom');
        $this->establecimiento = $_SESSION["establecimiento"]["id_establecimiento"];
        $this->codes["privada"] = $this->habitacionesM->getIdTipoHabitacion("privada", $this->establecimiento);
        $this->codes["compartida"] = $this->habitacionesM->getIdTipoHabitacion("compartida", $this->establecimiento);
    }

    public function index() {
        $data = array();
        $this->loadData($data);
        $this->load->view('header', $data);
        $this->load->view('habitacionesV');
        $this->load->view('footer');
    }

    private function loadData(&$data) {
        $data["tab"] = "habitaciones";
        $data["privadas"] = $this->habitacionesM->getCategorias($this->codes["privada"]);
        $data["compartidas"] = $this->habitacionesM->getCategorias($this->codes["compartida"]);
    }

    // I N S E R T A R
    public function nuevaCategoria() {
        if (!empty($_POST)) {
            $data = $_POST;
            $data['establecimiento'] = $_SESSION["establecimiento"]["id_establecimiento"];
            $this->escapar($data);
            $id_tipo = $this->codes["{$data['tipo']}"];
            $this->habitacionesM->crearCategoria($this->establecimiento, $data, $id_tipo);
        }
        header("Location:../habitaciones");
    }

    public function nuevaHabitacion() {
        $cantidadCuartos = $this->cuartom->contar($_SESSION["establecimiento"]["id_establecimiento"]);
        $cantidadCuartos = $cantidadCuartos[0]->cantidad;
        $cuartosComprados = $this->establecimientom->obtenerDatos("habitaciones_adicionales", $_SESSION["establecimiento"]["id_establecimiento"]);
        $cuartosComprados = $cuartosComprados[0]->habitaciones_adicionales;
        if ($cantidadCuartos >= (20 + $cuartosComprados)) {
            $_SESSION["mensaje"]["contenido"] = "No puedes crear mas habitaciones ni camas ya que solo has recargado para " . (20 + $cuartosComprados);
            $_SESSION["mensaje"]["tipo"] = "advertencia";
            header("Location:../habitaciones");
            exit();
        }
        if (!empty($_POST)) {
            $data = $_POST;
            // var_dump($data);
            $this->escapar($data);
            $this->habitacionesM->crearHabitacion($data);
        }
        header("Location:../habitaciones");
    }

    public function setFoto() {

        $this->escapar($_POST);
        if (!empty($_POST["id_categoria"])) {
            $this->load->model('categoriam');
            $categoria = $this->categoriam->obtenerDatos("*", "where id_categoria='{$_POST["id_categoria"]}' and id_establecimiento='{$this->establecimiento}'");
            if (sizeof($categoria) == 0) {
                $this->mensaje("Vuelva a intentarlo", "advertencia", "habitaciones");
            }
            if (!file_exists("permanent/$this->establecimiento")) {
                mkdir("permanent/" . $this->establecimiento, 0777);
            }
            if (isset($_POST["eliminar"])) {
                $ruta = "permanent/$this->establecimiento/{$categoria[0]->foto}";
                $this->categoriam->setFoto($categoria[0]->id_categoria, "");
                if (file_exists($ruta)) {
                    unlink($ruta);
                    $this->mensaje("Foto eliminada exitosamente", "exito", "habitaciones");
                } else {
                    $this->mensaje("La foto no existe", "advertencia", "habitaciones");
                }
            } else if ($_FILES["file"]["name"] != "") {
                $ruta = "permanent/$this->establecimiento}";
                $allowedExts = array("gif", "jpeg", "jpg", "png");
                $temp = explode(".", $_FILES["file"]["name"]);
                $extension = strtolower(end($temp));
                if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/pjpeg") || ($_FILES["file"]["type"] == "image/x-png") || ($_FILES["file"]["type"] == "image/png")) && ($_FILES["file"]["size"] < 1600000) && in_array($extension, $allowedExts)) {
                    if ($_FILES["file"]["error"] > 0) {
                        $this->mensaje("Error:" . $_FILES["file"]["error"] . ", inténtalo nuevamente", "advertencia", "informacionGeneral");
                    } else {
                        $nombre = $categoria[0]->id_categoria . "." . $extension;
                        $this->categoriam->setFoto($categoria[0]->id_categoria, $nombre);
                        move_uploaded_file($_FILES["file"]["tmp_name"], "permanent/$this->establecimiento/$nombre");
                        $this->mensaje("Foto indexada exitosamente", "exito", "habitaciones");
                    }
                } else {
                    $this->mensaje("Inténtalo nuevamente", "advertencia", "habitaciones");
                }
            } else {
                $this->mensaje("Inténtalo nuevamente", "advertencia", "habitaciones");
            }



            exit();



            $ruta = "permanent/logos/" . $logo[0]->logo;
            if (isset($_POST["logo"])) {
                $_POST["logo"] = "";
            } else if ($_FILES["file"]["name"] != "") {

                if ($logo[0]->logo != "" && file_exists($ruta)) {
                    $this->establecimientom->setLogo($this->establecimiento, "");
                    unlink($ruta);
                }
                $allowedExts = array("gif", "jpeg", "jpg", "png");
                $temp = explode(".", $_FILES["file"]["name"]);
                $extension = strtolower(end($temp));
                if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/pjpeg") || ($_FILES["file"]["type"] == "image/x-png") || ($_FILES["file"]["type"] == "image/png")) && ($_FILES["file"]["size"] < 1000000) && in_array($extension, $allowedExts)) {
                    if ($_FILES["file"]["error"] > 0) {
                        $this->mensaje("Error:" . $_FILES["file"]["error"] . ", inténtalo nuevamente", "advertencia", "informacionGeneral");
                    } else {
                        $nombre = $this->establecimiento . "." . $extension;
                        $this->establecimientom->setLogo($this->establecimiento, $nombre);
                        move_uploaded_file($_FILES["file"]["tmp_name"], "permanent/logos/$nombre");
                    }
                } else {
                    
                }
            }
        }
    }

    // A C T U A L I Z A R
    function editarCategoria() {
        if (!empty($_POST)) {
            $data = $_POST;
            // var_dump($data);
            $this->escapar($data);
            $data['establecimiento'] = $_SESSION["establecimiento"]["id_establecimiento"];
            $this->habitacionesM->editarCategoria($data);
        }
        header("Location:../habitaciones");
    }

    // E L I M I N A R
    function eliminarCategoria() {
        if (!empty($_POST)) {
            $data = $_POST;
            $this->escapar($data);
            $this->habitacionesM->eliminarCategoria($data);
        }
        header("Location:../habitaciones");
    }

    function eliminarCuarto() {
        if (!empty($_POST)) {
            $data = $_POST;
            $this->escapar($data);
            $this->habitacionesM->eliminarCuarto($data);
        }
        header("Location:../habitaciones");
    }

    function editarCuarto() {
        if (!empty($_POST)) {
            //var_dump($_POST);
            $this->escapar($_POST);
            $this->habitacionesM->editarCuarto($this->establecimiento, $_POST['id_categoria'], $_POST);
        }
        header("Location:../habitaciones");
    }

}

